dialog: add a box around the action area to use for styling
authorWilliam Jon McCann <william.jon.mccann@gmail.com>
Wed, 9 Apr 2014 18:30:37 +0000 (14:30 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 23 Apr 2014 02:35:02 +0000 (22:35 -0400)
If we want to set style properties that include the area
of the border-width part of action_area we need to use a
parent box.

https://bugzilla.gnome.org/show_bug.cgi?id=722211

gtk/gtkdialog.c
gtk/resources/ui/gtkdialog.ui

index eb342a55f7af8baa3f4ac9335373b238ef59dc7f..4eead014b3483bbc2323f22b16fdc3f4f4fdc386 100644 (file)
@@ -174,6 +174,7 @@ struct _GtkDialogPrivate
   GtkWidget *vbox;
   GtkWidget *headerbar;
   GtkWidget *action_area;
+  GtkWidget *action_box;
   GtkSizeGroup *size_group;
 
   gint use_header_bar;
@@ -289,7 +290,7 @@ apply_use_header_bar (GtkDialog *dialog)
 {
   GtkDialogPrivate *priv = dialog->priv;
 
-  gtk_widget_set_visible (priv->action_area, !priv->use_header_bar);
+  gtk_widget_set_visible (priv->action_box, !priv->use_header_bar);
   gtk_widget_set_visible (priv->headerbar, priv->use_header_bar);
   if (!priv->use_header_bar)
     {
@@ -655,6 +656,7 @@ gtk_dialog_class_init (GtkDialogClass *class)
   gtk_widget_class_bind_template_child_internal_private (widget_class, GtkDialog, vbox);
   gtk_widget_class_bind_template_child_internal_private (widget_class, GtkDialog, headerbar);
   gtk_widget_class_bind_template_child_internal_private (widget_class, GtkDialog, action_area);
+  gtk_widget_class_bind_template_child_internal_private (widget_class, GtkDialog, action_box);
   gtk_widget_class_bind_template_callback (widget_class, gtk_dialog_delete_event_handler);
 }
 
index c03b8dde79308a51037d1c4f22853a1362ab2143..3a2cd791c67bd1e1690b0bb36f107bd4ed48d766 100644 (file)
           <class name="dialog-vbox"/>
         </style>
         <child>
-          <object class="GtkButtonBox" id="action_area">
+          <object class="GtkBox" id="action_box">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="layout_style">end</property>
             <style>
-              <class name="dialog-action-area"/>
+              <class name="dialog-action-box"/>
             </style>
-           </object>
+            <child>
+              <object class="GtkButtonBox" id="action_area">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="layout_style">end</property>
+                <style>
+                  <class name="dialog-action-area"/>
+                </style>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="pack_type">end</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="fill">True</property>